import os
import pandas as pd

# 1. 指定文件夹路径
folder_path = 'C:\\Users\\yf\\Desktop\\检查引导(2)\\城镇燃气'  # 替换为你的文件夹路径

# 2. 遍历文件夹中的所有xlsx文件
# 使用列表生成式筛选出所有以.xlsx结尾的文件
# files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]

# files = []
# for root, dirs, files in os.walk(folder_path):
#     for file in files:
#         if file.endswith('.xlsx'):
#             files.append(os.path.join(root, file))
#             print(os.path.join(root, file))
files = os.listdir(folder_path)
files = [f for f in files if f.endswith('.xlsx')]

# 3. 读取每个文件中的指定列并生成MySQL的insert语句
table_name = 'ob_safe_file'  # 替换为你的表名
columns = ['专项分类（三级）', '检查项目（四级）', '检查项','检查内容（隐患描述）', '解决方案']  # 指定需要读取的列
insert_statements = []  # 用于存储生成的insert语句

special_type=5
detection_type = 107

# 遍历每个文件
for file in files:
    file_path = os.path.join(folder_path, file)  # 获取文件的完整路径
    df = pd.read_excel(file_path)  # 读取xlsx文件为DataFrame

    # 遍历DataFrame中的每一行
    for _, row in df.iterrows():
        # 提取指定列的值
        values = [row[col] for col in columns]
        # 如果值是字符串类型，则加上引号，否则保持原样
        values = [f"'{value}'" if isinstance(value, str) else str(value) for value in values]
        # 生成insert语句
        check_type = 1
        insert_statement = f"INSERT INTO {table_name} (`description`,  `ask`,  `industry_type`,  `special_type`,  " \
                           f"`check_type`,   `remark`,  `create_by`,  `create_time`,  `update_by`,  `update_time`,  " \
                           f"`identify_object`,   `label`,  `detection_type`  ) VALUES ({values[3],values[4],'1',special_type,check_type,values[2],'','','','','','',detection_type});"
        # 将生成的insert语句添加到列表中
        insert_statements.append(insert_statement)

# 4. 保存insert语句到一个文件
with open('insert_statements.sql', 'w') as f:
    for statement in insert_statements:
        f.write(statement + '\n')  # 将每条insert语句写入文件

print("MySQL insert statements have been saved to 'insert_statements.sql'")  # 打印完成信息
